import {companyDepartmentApi} from "@/api/departments";

export function isExternal(path) {
  return /^(https?:|mailto:|tel:)/.test(path)
}

export function validUsername(str) {
  const valid_map = ['admin', 'editor']
  return valid_map.indexOf(str.trim()) >= 0
}

//添加自定义的校验方法

//校验手机号的合法性
export function validateMobile(rules, value, callback) {
  const reg = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
  reg.test(value) ? callback() : callback(new Error('手机号不合法，请输入正确的格式'))
}

//校验统计  同级部门中有无出现重复部门名称
export function checkNameRepeat(id) {
  return async function ruleCheckNameRepeat(rule, value, callback) {
    // 先获取最新的组织架构数据
    const {depts} = await companyDepartmentApi()
    // console.log(value)
    // console.log(id)
    // depts是所有部门的数据
    //筛选出子部门并且判断有无重复部门名称
    const isRepeat = depts.some(v => v.pid === id && v.name === value)
    isRepeat ? callback(new Error(`同级部门下已经有${value}部门了`)) : callback()
  }
}

//校验统计  部门编码在整个模块中不允许出现重复
export async function checkCodeRepeat(rule, value, callback) {
  // 先获取最新的组织架构数据
  const {depts} = await companyDepartmentApi()
  // console.log(value)
  // console.log(id)
  // depts是所有部门的数据
  const isRepeat = depts.some(v => v.code === value)
  isRepeat ? callback(new Error(`部门编码${value}已存在`)) : callback()
}
